package com.huhao.wshare.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    // 从 application.properties 注入文件存储的物理路径
    @Value("${wshare.file.path}")
    private String fileSavePath;

    // 从 application.properties 注入URL的访问路径
    @Value("${wshare.file.url-path}")
    private String fileUrlPath;

    /**
     * 添加资源处理器，实现静态资源映射
     * @param registry 资源处理器注册表
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // addResourceHandler: 这是对外暴露的访问路径，/images/** 表示所有以 /images/ 开头的请求
        // addResourceLocations: 这是文件在服务器上的物理存储路径。
        // "file:" 前缀是必须的，代表这是一个本地文件系统路径。
        // 路径末尾的 "/" 也很重要。
        registry.addResourceHandler(fileUrlPath + "**")
                .addResourceLocations("file:" + fileSavePath);
    }
}
